Over the last several decades, the cost of computer memory, storage and processors has been steadily declining, while the power and performance of such devices have been increasing at a relatively rapid pace. As a result, a given amount of memory (e.g. DRAM) today costs substantially less to a consumer than what the same amount would have cost just a few years ago. Many experts expect this trend to continue, at least in the near future. Wide Area Network (WAN) traffic costs, however, have not shown the same rapid decline in pricing and increase in performance as computer processing and storage. For a variety of reasons, communications over WANs, such as the Internet, have been slower to advance in real terms and thus are often the source of bottlenecks in performance for many systems.
Today, an ever increasing number of applications and services are being made available over networks such as the Internet. Many content, application, and/or service providers are turning to technologies such as remote resource sharing and cloud computing. Cloud computing is a general term often used to describe the process of providing access to electronic resources through services, such as Web services, where the hardware and/or software used to support those services is made to be dynamically scalable to meet the needs of the services at any given time. A user or customer typically will rent, lease, or otherwise pay for access to resources through the cloud, and thus does not have to purchase and maintain the hardware and/or software to provide access to these resources. A service provider that owns those resources will usually take on the responsibility of maintaining and managing the resources, ensuring that they are highly available, scalable and otherwise ready to provide the necessary services.
In such cloud environments, users frequently want their data transformed in some specified way. In light of the slower advancements of network communications mentioned above, moving large amounts of raw data across network connections is not always ideal and may take longer than what can be tolerated by many systems. There is currently no solution for transforming data that takes advantage of cloud computing and virtual machines, while at the same time reducing the amount of data that needs to be delivered over a WAN.